package com.hhh.springai_test.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hhh.springai_test.model.dto.book.AddBookDTO;
import com.hhh.springai_test.model.dto.book.BookQueryRequest;
import com.hhh.springai_test.model.dto.book.CategoryStatisticsDTO;
import com.hhh.springai_test.model.dto.book.UpdateBookDTO;
import com.hhh.springai_test.model.po.Book;

import java.util.List;

/**
* @author 29915
* @description 针对表【book(图书信息表)】的数据库操作Service
* @createDate 2025-02-01 15:58:19
*/
public interface BookService extends IService<Book> {
    /**
     * 添加图书
     * @param addBookDTO
     * @param loginUserId
     * @return
     */
    long addBook(AddBookDTO addBookDTO, String loginUserId);

    /**
     * 删除图书
     * @param id
     * @return
     */
    boolean deleteBook(long id);

    /**
     * 更新图书
     * @param updateBookDTO
     * @return
     */
    boolean updateBook(UpdateBookDTO updateBookDTO);

    /**
     * 分页获取图书列表
     * @param bookQueryRequest
     * @return
     */
    Page<Book> listBookByPage(BookQueryRequest bookQueryRequest);

    /**
     * 获取图书分类统计信息
     *
     * @return 分类统计信息列表
     */
    List<CategoryStatisticsDTO> getCategoryStatistics();
}
